
#ifndef _EEPROM_H
#define _EEPROM_H

#include <stdint.h>

void x24CxxInit(void);
uint8_t x24CxxPageSize(void);
uint8_t x24CxxPageNum(void);

/*******************************************************************************
  * 函数名：x24Cxx_WriteByte
  * 功  能：写一个字节
  * 参  数：u16Addr要写入的地址
            u8Data要写入的数据
  * 返回值：无
  * 说  明：器件地址（包含写入命令） -> 1或2个字节WORD ADDR -> 数据
*******************************************************************************/
void x24CxxWriteByte(uint16_t u16Addr, uint8_t u8Data);
/*******************************************************************************
 * 函数名：x24Cxx_ReadByte
 * 功  能：读一个字节
 * 参  数：u16Addr要读取的地址
 * 返回值：u8Data读出的数据
 * 说  明：无
 *******************************************************************************/
uint8_t x24CxxReadByte(uint16_t u16Addr);
/*******************************************************************************
  * 函数名：x24Cxx_WritePage
  * 功  能：页写
  * 参  数：u16Addr要写入的首地址；
            u8Len写入数据字节数，最大为PAGE_SIZE
            pData要写入的数据首地址
  * 返回值：无
  * 说  明：最多写入1页，防止翻卷，如果地址跨页则去掉跨页的部分
*******************************************************************************/
void x24CxxWritePage(uint16_t u16Addr, uint8_t u8Len, uint8_t *pData);
void x24CxxWriteBuffer(uint16_t u16Addr, uint8_t u8Len, uint8_t *pData);
/*******************************************************************************
  * 函数名：x24Cxx_ReadPage
  * 功  能：页读
  * 参  数：u16Addr要读取的首地址；
            u8Len读取数据字节数，最大为PAGE_SIZE
            pBuff读取数据存入的缓存
  * 返回值：无
  * 说  明：无
*******************************************************************************/
void x24CxxReadPage(uint16_t u16Addr, uint8_t u8Len, uint8_t *pBuff);
void x24CxxReadBuffer(uint16_t u16Addr, uint8_t u8Len, uint8_t *pBuff);

#endif
